<?xml version="1.0" ?>
<glossary>
<title>Glossary</title>


<glossentry><glossterm>chameleon design</glossterm>
<glossdef>
<para>Specifying a namespace in <literal>include</literal>, <literal>externalRef</literal> or <literal>parentRef</literal> to give a namespace to grammars or patterns defined without a namespace is known as &quot;chameleon
design.&quot; This is because the imported grammar or pattern takes
the new namespace like a
chameleon takes the color of the environment in which it is placed.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>character class</glossterm>
<glossdef>
<para>In a regular expression, a character class is an atom matching a set
of characters. Character classes may be classical Perl character
classes, Unicode character classes, or user-defined character
classes.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>classical Perl character class</glossterm>
<glossdef>
<para>A set of character classes designated by a single letter, for which
upper- and lowercases of the same letter are complementary (for
instance, &quot;\d&quot; is all the decimal
digits, and &quot;\D&quot; is all the
characters that are not decimal digits).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>content model</glossterm>
<glossdef>
<para>A description of the structure of children elements and text nodes
(independent of attributes). The content model is
&quot;simple&quot; when there is a text node
but no elements, &quot;complex&quot; when
there are element nodes but no text,
&quot;mixed&quot; when there are text and
element nodes, and &quot;empty&quot; when
there are neither text nor element nodes. </para>
</glossdef>
</glossentry>

<glossentry><glossterm>datatype</glossterm>
<glossdef>
<para>A term used by Relax NG to qualify both the content of a simple content element or attribute. Datatypes
should not be confused with XML 1.0 element types, which are called
element names by Relax NG.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>DOM</glossterm>
<glossdef>
<para>Document Object Model. An object-oriented model of XML documents,
including the definition of the API allowing its manipulation. The
third version of DOM (DOM Level 3) will include an API named
&quot;Abstract Schemas&quot; to facilitate
schema-guided editions of XML documents (see <systemitem>http://www.w3.org/TR/DOM-Level-3-Core</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>DSDL</glossterm>
<glossdef>
<para>Document Schema Definition Languages (DSDL) is a project undertaken by
the ISO (ISO/IEC JTC 1/SC 34/WG 1, to be precise) whose objective is
&quot;to create a framework within which multiple
validation tasks of different types can be applied to an XML document
in order to achieve more complete validation results than just the
application of a single technology&quot; (see <systemitem>http://dsdl.org</systemitem>). 
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>DTD</glossterm>
<glossdef>
<para>Document Type Definition. XML 1.0 DTDs are inherited from SGML, in
which rules were included that allow the customization of the markup
itself and played a very central role. Because of the syntactical
rules included in their DTDs, SGML applications need a DTD to be able
to read an SGML document. One of the simplifications of XML is to
state that a XML parser should be able to read a document without
needing a DTD. DTDs have therefore been simplified over their SGML
ancestors and remain the first incarnation of what is today called a
XML Schema language.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>element</glossterm>
<glossdef>
<para>One of the basic type of nodes in the tree represented by a XML
document. An element is delimited by start and end tags. In the
corresponding tree, an element is a nonterminal node, which may have
subnodes of type element, character (text), and namespace and
attribute, as well as comment and processing instruction nodes.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>element type</glossterm>
<glossdef>
<para>Term used in the XML 1.0 Recommendation, which is equivalent to the
notion of element names in W3C XML Schema and should not be confused
with the simple or complex datatype of an element.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>empty content</glossterm>
<glossdef>
<para>An element that has neither child element nor text nodes (with or
without attributes).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>facet</glossterm>
<glossdef>
<para>A constraint added to the lexical or value space of a simple datatype
of the W3C XML Schema datatype system. The list of facets that can be
used depends on the simple datatype. W3C XML Schema's facets can be used as parameters in Relax NG <literal>data</literal> patterns.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Infoset</glossterm>
<glossdef>
<para>XML Information Set. A formal description of the information that may
be found in a well-formed XML document.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>instance document</glossterm>
<glossdef>
<para>A XML document that is a candidate to be validated by a schema. Any
well-formed XML 1.0 document that conforms to the Namespaces in XML
1.0 Recommendation can be considered a valid or invalid instance
document.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>lexical space</glossterm>
<glossdef>
<para>The set of all representations (after parsing and whitespace
processing) allowed for a simple datatype.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>local name</glossterm>
<glossdef>
<para>The name of a component in its namespace, i.e., the part of the
qualified name that comes after the namespace prefix.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>mixed content</glossterm>
<glossdef>
<para>The content of an element that contains both child element and text
nodes.
</para>
</glossdef>
</glossentry>

<glossentry>
<glossterm>namespace</glossterm>
<glossdef>
<para>A unique identifier that can be associated with a set of XML elements
and attributes. This identifier is a URI, which is not required to
point to an actual resource but must
&quot;belong&quot; to the author of these
elements and attributes. Since this full URI can't
be included in the name of each element and attribute, a namespace
prefix is assigned to the namespace URI through a namespace
declaration. This prefix is added to the local name of the elements
and attributes to form a qualified name. Namespaces are optional and
elements and attributes may have no namespaces attached. 
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>piece</glossterm>
<glossdef>
<para>Regular expressions (or patterns) are composed of pieces. Each piece
is itself composed of an atom describing a condition on a substring
and an optional quantifier defining the expected number of
occurrences of the atom.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>qualified name</glossterm>
<glossdef>
<para>The complete name of a component, including the prefix associated to
its target namespace if one is defined.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>regular expression</glossterm>
<glossdef>
<para>A syntax to express conditions on strings. The syntax used by the W3C
XML Schema for its patterns is very close to the syntax introduced by
the Perl programming language. A regular expression is composed of
elementary &quot;pieces.&quot;
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>RELAX</glossterm>
<glossdef>
<para>A grammar-based XML Schema language developed by Murata Makoto and
published in March 2000 as a Japanese ISO Standard (see <systemitem>http://www.xml.gr.jp/relax</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>RELAX NG</glossterm>
<glossdef>
<para>A grammar-based XML Schema language resulting from a merger between
RELAX and TREX (see <systemitem>http://relaxng.org</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>SAX</glossterm>
<glossdef>
<para>Simple API for XML. A streaming event-based API used between parsers
and applications. Its streaming nature means that pipelines of XML
processing may be created using SAX (see <systemitem>http://www.saxproject.org</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Schematron</glossterm>
<glossdef>
<para>A rule-based XML Schema language, developed by Rick Jelliffe, using
XPath expressions to describe validation rules (see <systemitem>http://www.ascc.net/xml/resource/schematron/schematron.html</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>SGML</glossterm>
<glossdef>
<para>Standard Generalized Markup Language. Created in 1980, the ancestor
of XML. XML was designed as a simplified subset of SGML to be used on
the Web.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>simple content</glossterm>
<glossdef>
<para>An element has a simple content model when it has a child text node
only (and no subelements). A simple content element has a simple type
if it has no attributes, and it has a complex type if it has any
attributes.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>special character</glossterm>
<glossdef>
<para>A character that may be used as an atom after a
&quot;\&quot; to accept a specific character,
either for convenience or because this character is interpreted
differently in the context of a regular expression.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>TREX</glossterm>
<glossdef>
<para>A grammar-based XML Schema language developed by James Clark (see
<systemitem>http://www.thaiopensource.com/trex</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Unicode block</glossterm>
<glossdef>
<para>A set of characters classified by their
&quot;localization&quot; (Latin, Arabic,
Hebrew, Tibetan, and even Gothic or musical symbols).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Unicode category</glossterm>
<glossdef>
<para>A set of characters classified by their usage (letters, uppercase,
digit, punctuation, etc.).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Unicode character class</glossterm>
<glossdef>
<para>A set of character classes defined based on the Unicode blocks and
categories.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>URI</glossterm>
<glossdef>
<para>Uniform Resource Identifier. Defined by the RFCs 2396 and 2732. URIs
were created to extend the notion of URLs (Uniform Resource Locators)
to include abstract identifiers that do not necessarily need to
&quot;locate&quot; a resource.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>URL</glossterm>
<glossdef>
<para>Uniform Resource Locator, a common identifier used on the Web. URLs
are absolute when the full path to the resource is indicated, and
relative when a partial path is given that needs to be evaluated in
relation with a base URL.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>valid</glossterm>
<glossdef>
<para>A XML document that is well-formed and conforms to a schema (Relax NG, DTD, W3C
XML Schema, etc.) of some kind.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>value space</glossterm>
<glossdef>
<para>The set of all the possible values for a simple datatype, independent
of their actual representation in the instance documents.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>W3C</glossterm>
<glossdef>
<para>World Wide Web Consortium. Originally created to settle HTML and HTTP
as de facto standards. The main specification body for the core
specifications of the World Wide Web and the keeper of the core XML
specifications (see <systemitem>http://www.w3.org</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>well-formed</glossterm>
<glossdef>
<para>An XML document that meets the conditions defined in the XML 1.0
Recommendation: it must be readable without ambiguity. Syntax errors
will be detected by a XML parser without schema of any type.
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>whitespace</glossterm>
<glossdef>
<para>Characters <literal>#x9</literal> (tab), <literal>#xA</literal>
(linefeed), <literal>#xD</literal> (carriage return), and
<literal>#x20</literal> (space). These are often used to indent the
XML documents to give them a more readable aspect, and are filtered
by an operation named &quot;whitespace
processing.&quot;
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>XInclude</glossterm>
<glossdef>
<para>A W3C specification defining a general purpose inclusion mechanism
for XML documents (see <systemitem>http://www.w3.org/TR/xinclude</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>XML</glossterm>
<glossdef>
<para>Extensible Markup Language. A subset of SGML created to be used on
the Web. Its core specification (XML 1.0) was published by the W3C in
February 1998. New specifications have been added since this date,
and the W3C considers that, with the addition of W3C XML Schema, the
core specifications are now complete.
</para>
</glossdef>
</glossentry>


<glossentry><glossterm>XPath</glossterm>
<glossdef>
<para>A query language used to identify a set of nodes within a XML
document. Originally defined to be used with XSLT, it is also used by
other specifications such as Schematron, XPointer, W3C XML Schema or XForms (see
<systemitem>http://www.w3.org/TR/xpath</systemitem>).
</para>
</glossdef>

</glossentry>

<glossentry><glossterm>XSLT</glossterm>
<glossdef>
<para>Extensible Stylesheet Language Transformations. A programming
language specialized for the transformation of XML documents (see
<systemitem>http://www.w3.org/TR/xslt</systemitem>).
</para>
</glossdef>
</glossentry>

<glossentry><glossterm>pattern</glossterm>
<glossdef>
<para>Any part of a Relax NG schema that can be matched against a set of attributes and a sequence of elements and strings is a pattern. With the exception of name classes, all parts (including the whole schema) of a Relax NG schema are patterns.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Russian doll design</glossterm>
<glossdef>
<para>A schema where the definitions of elements and attributes are embedded one in each other without using named patterns is often refered as having a "Russian doll design".</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Named pattern</glossterm>
<glossdef>
<para>Named patterns are globally defined in a grammar and may be refered from anywhere in this grammar or in the children grammars.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Grammar</glossterm>
<glossdef>
<para>A grammar is a pattern which is a container for a start pattern and any number of named patterns.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Start pattern</glossterm>
<glossdef>
<para>When a grammar is used to validate an instance document, its start pattern is matched against the root element of the instance document. When a grammar is embedded in another grammar, the embedded grammar is replaced by its start pattern during the simplication of the schema.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Simplification</glossterm>
<glossdef>
<para>Action of simplifying and normalizing a Relax NG schema to remove the syntactical variations and use a few number of basic patterns and name classes. The simplification of Relax NG is described in its specification to.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>Recursive content models</glossterm>
<glossdef>
<para>Recursive content models are content models in which elements can be included directly or indirectly within themselves (such as XHTML "div" or "span" elements).</para>
</glossdef>
</glossentry>

<glossentry><glossterm>recursive patterns</glossterm>
<glossdef>
<para>Recursive patterns are named patterns including directly or indirectly references to themselves. Relax NG only allows recursive patterns which describe recursive content models, i.e. for which the definition of the named pattern is isolated from its reference by an element pattern.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>compositor</glossterm>
<glossdef>
<para>A compositor is a pattern which can be used combine other patterns. Relax NG has three basic compositors: <literal>group</literal>, <literal>choice</literal> and <literal>interleave</literal>. A fourth compositor, <literal>mixed</literal>, which is a shortcup for <literal>interleave</literal> with an embedded <literal>text</literal> pattern.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>ambiguous</glossterm>
<glossdef>
<para>A pattern is ambiguous when a fragment of an instance document may be valid through several alternatives in its <literal>choice</literal> patterns. Relax NG allows ambiguous patterns but they can be a problem for annotation and datatype assigment.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>unambiguous</glossterm>
<glossdef>
<para>A pattern is unambiguous when any fragment of instance document which is valid per this pattern is only valid for one of each alternatives. Relax NG does not require unambiguous patterns but they can be considered a good practice for annotation and datatype assigment.</para>
</glossdef>
</glossentry>

<glossentry><glossterm>deterministic</glossterm>
<glossdef>
<para>A pattern is deterministic if a schema processor can always determine which alternative to follow looking only at the current element under validation. Unlike W3C XML Schema, Relax NG does not require deterministic patterns.</para>
</glossdef>
</glossentry>

<!--
<glossentry><glossterm></glossterm>
<glossdef>
<para> </para>
</glossdef>
</glossentry>

<glossentry><glossterm></glossterm>
<glossdef>
<para> </para>
</glossdef>
</glossentry>

<glossentry><glossterm></glossterm>
<glossdef>
<para> </para>
</glossdef>
</glossentry>

<glossentry><glossterm></glossterm>
<glossdef>
<para> </para>
</glossdef>
</glossentry>

<glossentry><glossterm></glossterm>
<glossdef>
<para> </para>
</glossdef>
</glossentry>

<glossentry><glossterm></glossterm>
<glossdef>
<para> </para>
</glossdef>
</glossentry>
-->

</glossary>
